const CryptoJS = require("crypto-js")

// 密钥（128位，16字节）
var key = CryptoJS.enc.Utf8.parse('0123456789abcdef');

// 初始化向量 (IV) (128位，16字节)
var iv = CryptoJS.enc.Utf8.parse("0123456789abcdef");

//待加密的数据
var plaintext = "hello javascript";

// 进行AES-128加密,使用CBC模式和PKCS7填充
var encrypted = CryptoJS.AES.encrypt(plaintext, key, {
    iv: iv,
    model: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
});

// 获取加密后的密文
var cipherText = encrypted.toString();

console.log(cipherText);  // uTkRnM+/Sxo/DOV5dCkSnzryUJb5GRCYW3deuRoQOrw=


// 解密
// 密文数据
var encryptText = '3lMHzkbEnE7/O3bmHRspIg==';

// 进行解密，使用CBC模式和PKCS7填充
var decrypted = CryptoJS.AES.decrypt(encryptText, key, {
    iv: iv,
    model: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
});

// 开始解密
var plaintext = decrypted.toString(CryptoJS.enc.Utf8);

console.log(plaintext);